package entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.Table;

import dtos.ArticuloDTO;

@Entity
@Table(name = "Muebles")
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING)
@DiscriminatorValue("Mueble")
public class Mueble extends Articulo implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Column
	private String material;
	

	
	public static Mueble parseDTO(ArticuloDTO articulo){
		Mueble m = new Mueble();
		try{
			m.material = articulo.getMaterial();
			
			m.codigo = articulo.getCodigoArticulo();
			m.idModulo = articulo.getIdModulo();
			m.descripcion = articulo.getDescripcion();
			m.marca = articulo.getMarca();
			m.precio = articulo.getPrecio();
			m.foto = articulo.getFotoURL();
			m.nombre = articulo.getNombre();
			
			return m;
		}catch(Exception e){
			m.codigo = articulo.getCodigoArticulo();
			m.descripcion = "Null pointer exception en alguno de los atributos del DTO recibido";
			
			return m;
		}
		
	}
	
	public String getMaterial() {
		return material;
	}

	public void setMaterial(String material) {
		this.material = material;
	}
	
	public ArticuloDTO getDTO(){
		ArticuloDTO muebleDTO = this.instanciateDTO();
		muebleDTO.setMaterial(material);
		muebleDTO.setTipo("Mueble");
		return muebleDTO;
	}
}
